/**
 * 安卓白金英雄坛制作组 <br>
 * 文件名：FinishScreen.java <br>
 * 创建时间：2013-9-5 下午8:18:55 <br>
 * 所属项目：GmudEX <br>
 * @author 12548 <br>
 */
package lostland.gmud.exv2.ui;

import java.util.ArrayList;

import lostland.gmud.exv2.FontSize;
import lostland.gmud.exv2.Game;
import lostland.gmud.exv2.GameConstants;
import lostland.gmud.exv2.Gmud;
import lostland.gmud.exv2.SavingScreen;
import lostland.gmud.exv2.battle.BattleScreen;
import lostland.gmud.exv2.blgframework.impl.BLGGraphics;
import lostland.gmud.exv2.data.GameData;
import lostland.gmud.exv2.expand.BigEventScreen;
import lostland.gmud.exv2.expand.PreQuitScreen;
import lostland.gmud.exv2.ui.core.FullScreen;
import lostland.gmud.exv2.ui.core.YesNoScreen;

/**
 * 类名：FinishScreen <br>
 * 说明：周目通关屏
 *
 * @author 12548
 */
public class FinishScreen extends FullScreen {

	String s = "";
	int x = 200;

	public FinishScreen() {
		super();

		switch (BattleScreen.getInstance().bossid) {
			case 124:
				s = "   我是谁：不要以为你真的打败了我，这只是剧情的安排。其实还有两个更精采的结……" +
						"                        画外音：快下场！你已经说的够多了。                " +
						"我走到六芒星阵中央，按下了时空转换的按钮。     " +
						"   。。。。。。                    _END_";
				break;
			case 125:
				s = "   东方求败：为了所谓的正义，可以不择手段吗？我只是做了自己想做的事，我错了吗？" +
						"倒是你，一直生活在正义的阴影下，失去了自我，那才是可悲呢。" +
						"                住口！你这样的人也配谈正义吗？" +
						"                    东方求败：想杀人灭口吗？可惜我还不想死。再见了。" +
						"  不知什么时候东方求败打开了时空转换装置。" +
						"看着他渐渐变小的背影，我毫不犹豫地冲了上去。" +
						"                 。。。。。。                    _END_";
				break;
			case 126:
				s = "  道德和尚：你赢了。但是请施主记住，正义终将战胜邪恶。只可惜你却看不到那一天了。" +
						"我慢慢走近，一刀劈了下去。" +
						"就象砍进棉花里，没有任何声音，道德和尚在一瞬间消失了。难道说。。。              " +
						"轰－！                        我惊异地发现，这一刀斩在了时空转换装置上。          " +
						"周围的景物在迅速的变更，感觉如同掉进了无尽的深渊。     。。。。。。                     _END_";
				break;
			case 132:
				s = "      丘比：咳咳……你还真是着急，好吧，这次算你赢了。但是之前我的话还没说完……" +
						"我翻动丘比的身体，并没有找到时空转换装置" +
						"                    丘比：不用费力气了，你在杀死宇文天启的时候，已经获得了魔法少女的能力，简称魔力。" +
						"                那么，我想回去随时都可以了？" +
						"丘比摇身一变，渐渐消失的同时出现了宇文天启的轮廓，你仿佛明白了什么。。。。                 _END_";
				break;
		}

		x = 200;
	}


	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.blgframework.CScreen#present(float)
	 */
	@Override
	public void present(float deltaTime) {
		BLGGraphics g = (BLGGraphics) getGame().getGraphics();
		g.clear(Gmud.getBgColor());
		x -= 2;
		g.drawText(s, 0, x / 10, FontSize.FT_16PX, 320);

		g.drawRect(0, 0, 320, 16, Gmud.getBgColor());
		g.drawText("==================结局==================", 0, 0, FontSize.FT_16PX, 999);
	}


	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.core.DialogScreen#onTouchDown(int, int)
	 */
	@Override
	protected void onTouchDown(int tx, int ty) {

	}


	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.core.DialogScreen#onTouchMove(int, int)
	 */
	@Override
	protected void onTouchMove(int tx, int ty) {

	}


	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.core.DialogScreen#onTouchUp(int, int)
	 */
	@Override
	protected void onTouchUp(int tx, int ty) {

	}


	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.ui.core.DialogScreen#onClick(int, int)
	 */
	@Override
	protected void onClick(int tx, int ty) {
		final GameData data = Game.getInstance().data;

		int i = 0;

		final String[] end_com = {
				"普通菜鸟", //0:
				"浪子杀手", //1:完成平一指任务48次
				"神行太保", //2:弱冠前通关
				"冷血屠夫", //3:杀死NPC64人
				"邪恶天使", //4:绝代佳人的基础上杀死NPC64人
				"盖世大侠", //5:名声不小于160
				"好好先生", //6:没有杀死任何NPC，包括追杀任务的NPC
				"无情名捕", //7:完成追杀任务128次
				"绝代佳人", //8:相貌48的女性
				"有脚书橱", //9:读书识字超过170级
				"武林盟主", //10:在武林大会上获胜超过4次且名声大于128
				"月锻季炼", //11:铸造武器48次
				"舞林高手", //12:跳舞毯得分超过5000
				"纵横捭阖", //13:2048得分超过3000
				"人们都认为你是吃货" //14:喂凸凸超过50次
		};

		if (data.gold_medal > 4 && Gmud.mc.fame > 128) {
			i = 10;
		} else if (data.q2048_best > 3000) {
			i = 13;
		} else if (data.dancing_best > 5000) {
			i = 12;
		} else if (data.stat_feeds > 50) {
			i = 14;
		} else if (Gmud.mc.skills[9] > 170) {
			i = 9;
		} else if (data.stat_hunts > 127) {
			i = 7;
		} else if (data.stat_hunts == 0 && data.stat_kills == 0) {
			i = 6;
		} else if (Gmud.mc.getface() > 47 && Gmud.mc.sex == 1) {
			i = 8;
		} else if (i == 8 && data.stat_kills > 63) {
			i = 4;
		} else if (Gmud.mc.fame >= 160) {
			i = 5;
		} else if (data.stat_kills > 63) {
			i = 3;
		} else if (Gmud.mc.age < 20) {
			i = 2;
		} else if (data.stat_asss > 47) {
			i = 1;
		} else {
			i = 0;
		}


		//TODO:暂时关闭周目系统，以后再添加回来

		final String s =
				"周目：" + GameConstants.zm[data.getSyuume()] + "\n"
						+ "难度：" + GameConstants.diff[data.game_difficulty] + "\n"
						+ "时间：" + (int) (data.stat_time / 3600) + ":" + (int) (data.stat_time / 60 % 60) + ":" + (int) (data.stat_time % 60) + "\n"
						+ "杀NPC数：" + data.stat_kills + "\n"
						+ "追杀数：" + data.stat_hunts + "\n"
						+ "名声：" + Gmud.mc.fame + "\n"
						+ "等级评定：" + end_com[i];


		new BigEventScreen("通关", s, true, new BigEventScreen("尾声", (Gmud.rand.nextInt(160) < Gmud.mc.fame) ?
				"“喂，喂！醒醒！太阳都晒到屁股了。\n" +
						"再不起床就要迟到啦。”\n" +
						"？？？\n" +
						"一阵忙乱之后。\n" +
						"“有没有搞错？今天可是星期日啊！”\n" +
						"。。。。。。"
				:
				"终于着陆了。眼前是一个嘈杂的市场。\n" +
						"到处都是蓝眼睛白皮肤的外国人，而且\n装扮也很奇怪。\n" +
						"“请问，这里是拍片现场吗？”\n" +
						"“WHAT YOU SAY？”\n" +
						"不会吧？竟然来到了中世纪的欧洲。\n" +
						"MY GOD！", true,
				new YesNoScreen("恭喜你通关了，请问是否保存进度？如果保存的话，那么下次进入将开始新游戏，并可以选择下一周目。"
						+ "否则下次进入将继续通关之前的存档。") {

					@Override
					protected void onYes() {

						Gmud.mc.fame -= 127; //mc即將變成NPC，換算成NPC的聲望單位
						Gmud.mc.gold = Gmud.format(Gmud.mc.gold, -1, 50000); //截除多余金钱
						Gmud.mc.maxfp = Gmud.mc.getMaxfpLimit(); //真实内力

						Gmud.mc.saying.clear();
						Gmud.mc.saying.add("......");
						Gmud.mc.saying.add("我是" + Gmud.mc.name + "，也就是你自己。");
						Gmud.mc.saying.add("光阴似箭，沧海桑田。");
						Gmud.mc.saying.add("书山有路勤为径，学海无涯苦作舟。");

						if (getGame().oldmc == null) {
							getGame().oldmc = new ArrayList<>();
						}

						if (data.getSyuume() < 5) {
							if (getGame().oldmc.size() > data.getSyuume()) {
								getGame().oldmc.set(data.getSyuume(), Gmud.mc);
							} else {
								getGame().oldmc.add(Gmud.mc);
							}
						} else {
							if (getGame().oldmc.size() > data.getSyuume()) {
								getGame().oldmc.set(data.getSyuume(), Gmud.mc);
							}
						}

						new SavingScreen().save();
						while (!getGame().getFileIO().getPreferences().edit().putBoolean("newgame", true).commit()) {
						}
						new PreQuitScreen().replaceCurrent();
					}

					@Override
					protected void onNo() {
						new PreQuitScreen().replaceCurrent();
					}
				})).replaceCurrent();

	}

}
